﻿using System;
using System.Text;
using System.Diagnostics;


namespace wdwp.Desktop.widgetLib.CommonTypes
{
    /// <summary>
    /// 위젯 플랫폼의 이벤트가 발생할때 이벤트와 관련된 정보를 전달하는 객체 
    /// </summary>
    [Serializable]
    public class WidgetEventArgs : EventArgs
    {
        /// <summary>
        /// 이벤트의 메세지
        /// </summary>
        string m_Msg;           //메세지 
        /// <summary>
        /// 이벤트의 내용
        /// </summary>
        string m_Subject;      //추가 메세지 (출력용)
        /// <summary>
        /// 이벤트가 발생한 객체
        /// </summary>
        object m_Content;   //전달할 객체


        /// <summary>
        /// 생성자
        /// </summary>
        public WidgetEventArgs()
        {
            m_Msg = string.Empty;
            m_Subject = string.Empty;
            m_Content = null;
        }

        /// <summary>
        /// 생성자
        /// </summary>
        public WidgetEventArgs(string Msg)
        {
            m_Msg = Msg;
        }

        /// <summary>
        /// 생성자
        /// </summary>
        public WidgetEventArgs(string Msg, string Subject)
        {
            m_Msg = Msg;
            m_Subject = Subject;
        }

        /// <summary>
        /// 생성자
        /// </summary>
        public WidgetEventArgs(string Msg, object Content)
        {
            m_Msg = Msg;
            m_Content = Content;
        }

        /// <summary>
        /// 생성자
        /// </summary>
        public WidgetEventArgs(string Msg, string Subject, object Content)
        {
            m_Msg = Msg;
            m_Subject = Subject;
            m_Content = Content;
        }

        /// <summary>
        /// 이벤트의 타입을 정의하는 메세지
        /// </summary>
        public string Msg 
        {
            get
            {
                return m_Msg;
            }

            set
            {
                m_Msg = value;
            }
        }

        /// <summary>
        /// 이벤트의 내용을 정의하는 메세지
        /// </summary>
        public string Subject
        {
            get
            {
                return m_Subject;
            }

            set
            {
                m_Subject = value;
            }
        }

        /// <summary>
        /// 이벤트가 발생한 객체 또는 이벤트로 인해 전달되어야 하는 객체의 레퍼런스
        /// </summary>
        public object Content 
        { 
            get
            {
                return m_Content;
            }

            set
            {
                m_Content = value;
            }
        }
        
    }

}
